#pragma once
#include "Event.h"
#include "GameObject.h"

struct EventPramsObjectPointer : public EventParams
{
	EventPramsObjectPointer(GameObject* obj) : object(obj){}
	GameObject* object;
};

template <typename P>
struct EventPramsCast
{
	EventPramsCast(const boost::function1<void,EventParams>& funer) : m_funer(funer)
	{

	}

	void operator()(EventParams& params)
	{
		P& p = static_cast<P&>(params);
		m_funer(p);
	}
private:
	boost::function1<void,EventParams> m_funer;
};

